<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@include file="/pages/common.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>采购计划</title>

<script type="text/javascript">
$(function () {

    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
	//初始化提示框的位置：top-center，bottom-left，bottom-right
    toastr.options.positionClass = 'toast-top-center';
	
  //单击
    $('#tb_departments').on('click-row.bs.table',function (e, row, element) {
        	$("#id").val(row.prid);
        	$('#tb_departmentsDetailed').bootstrapTable('refresh');
    });
});


var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#tb_departments').bootstrapTable({
            url: '${pageContext.request.contextPath }/procurementRuku/list.do',         //请求后台的URL（*）
            //showExport: true, //是否显示导出
            //exportDataType: "basic", //basic', 'all', 'selected'.
            method: 'get',                      //请求方式（*）
            toolbar: '#toolbar',                //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber:1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25, 30],       //可供选择的每页的行数（*）
            //search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
            strictSearch: true,
            //showColumns: true,                  //是否显示所有的列
            //showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "staffid",                     //每一行的唯一标识，一般为主键列
            //showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
            //cardView: false,                    //是否显示详细视图
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true
            }, {
                field: 'prid',
                title: 'id',
                visible: false,
            }, {
                field: 'prnum',
                title: '到货单号'
            }, {
                field: 'prdate',
                title: '到货日期'
            }, {
                field: 'supplier.suppliername',
                title: '供应商'
            }, {
                field: 'prstate',
                title: '入库状态',
                formatter:function(value,row,index){
	                  if(value==0){return "未入库";} 
	                  if(value==1){return "已入库";} 
	       			  else{return "";}                       
	     		},
            }]
        });
        $('#tb_departmentsDetailed').bootstrapTable({
            url: '${pageContext.request.contextPath }/procurementRukuMateriel/list.do',         //请求后台的URL（*）
            showExport: false, //是否显示导出
            exportDataType: "basic", //basic', 'all', 'selected'.
            method: 'get',                      //请求方式（*）
            toolbar: '',                //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParamsDetailed,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber:1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25, 30],        //可供选择的每页的行数（*）
            search: false,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
            strictSearch: true,
            showColumns: false,                  //是否显示所有的列
            showRefresh: false,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            height: 300,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "staffid",                     //每一行的唯一标识，一般为主键列
            showToggle:false,                    //是否显示详细视图和列表视图的切换按钮
            cardView: false,                    //是否显示详细视图
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true,
                visible: false
            }, {
                field: 'pmid',
                title: 'id',
                visible: false
            }, {
                field: 'procurementRuku.prnum',
                title: '到货单号'
            }, {
                field: 'procurementRuku.prdate',
                title: '到货日期'
            }, {
                field: 'materiel.remark15',
                title: '供应商'
            }, {
                field: 'materiel.name',
                title: '物料名称'
            }, {
                field: 'materiel.materialmodel',
                title: '型号'
            }, {
                field: 'pmbatchnumber',
                title: '批号'
            }, {
                field: 'number',
                title: '到货数量'
            }, {
                field: 'barcode',
                title: '条形码'
            }]
        });
        
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            starprdate:$.trim($('#starprdate').val()), 
            endprdate:$.trim($('#endprdate').val()), 
            suppliername:$.trim($('#suppliername').val()),  
        };
        return temp;
    };
  //得到查询的参数
    oTableInit.queryParamsDetailed = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            prid:$.trim($('#id').val()), 
        };
        return temp;
    };
    return oTableInit;
};

var ButtonInit = function () {
    var oInit = new Object();
    var postdata = {};

    oInit.Init = function () {
        //初始化页面上面的按钮事件
    };

    return oInit;
};

function doDelete() {
	//判断是否删除显示的详情所对应的到货单
	var dd = 0;
	var row=$.map($("#tb_departments").bootstrapTable('getSelections'),function(row){
		return row ;
	});
	if (row.length == 0) {
		toastr.warning('请至少选择一条数据!');
	}else{
		var ids="";
		var names="";
		for(var i=0;i<row.length;i++){
			if (row[i].prstate == "1") {
				names = ","+row[i].prnum;
			}else{
				ids+=","+row[i].prid;
				if(row[i].prid == $.trim($('#id').val())){
					dd++;
				}
			}
		}
		ids = ids.substr(1,ids.length-1);
		names = names.substr(1,names.length-1);
		if (ids == "") {
			toastr.warning(names+'到货单全部已经入库，不能删除!');
		} else {
			var str = "确认要删除选择的数据吗？";
			if (names != "") {
				str = "选择的数据中"+names+"到货单全部已经入库，不能删除!确认要其他数据吗？";
			} 
			//询问框
			Ewin.confirm({ message: str}).on(function (e) {
		       if (!e) {
		         return;
		       } 
		    	var url = "${pageContext.request.contextPath }/procurementRuku/delete.do";
			    $.post(url, "ids="+ids, function(data) {
					if (data == 1) {
						toastr.success('删除成功');
						setTimeout(function(){  //使用  setTimeout（）方法设定定时2000毫秒
							$('#tb_departments').bootstrapTable('refresh'); 
							if(dd>0){
        						$("#id").val(0);
    	                    	$('#tb_departmentsDetailed').bootstrapTable('refresh');
    						}
						},2000);
					} else if (data == 2) {
						toastr.warning('该信息已删除!');
						setTimeout(function(){  //使用  setTimeout（）方法设定定时2000毫秒
							$('#tb_departments').bootstrapTable('refresh');
							if(dd>0){
        						$("#id").val(0);
    	                    	$('#tb_departmentsDetailed').bootstrapTable('refresh');
    						}
						},2000); 
					} else if (data == -2) {
    					toastr.warning('请先删除对应的退货单!');
					} else {
						toastr.error('删除失败');
						setTimeout(function(){  //使用  setTimeout（）方法设定定时2000毫秒
							$('#tb_departments').bootstrapTable('refresh'); 
						},2000);
					}
				}); 
		    }); 
		}
	}
}

	
function doAdd() {
	window.location.href="${pageContext.request.contextPath }/pages/tdd/erp/procurementRukuAdd.jsp";
}
function doView() {
   	var row=$.map($("#tb_departments").bootstrapTable('getSelections'),function(row){
   		return row ;
   	});
   	if (row.length != 1) {
   		toastr.warning('请选择一条数据!');
   	}else{
   		if(row[0].prstate == "1"){
   			toastr.warning('此到货单全部已经入库，不能修改!');
   		}else{
	       	location.href = "${pageContext.request.contextPath }/procurementRuku/toupdata.do?prid="+row[0].prid;
   		}
   	}
}
function dork() {
   	var row=$.map($("#tb_departments").bootstrapTable('getSelections'),function(row){
   		return row ;
   	});
   	if (row.length != 1) {
   		toastr.warning('请选择一条数据!');
   	}else{
       	location.href = "${pageContext.request.contextPath }/lc/rk.do?prid="+row[0].prid;
   	}
}
function seach() {
	$('#tb_departments').bootstrapTable('refresh'); 
}
function clearSearch() {
	//清空表单
	document.getElementById("formSearch").reset(); 
}
</script>
</head>
<body>
	<div class="panel-body" style="padding-bottom:0px;">
        <div class="panel panel-default">
            <div class="panel-heading">查询条件</div>
            <div class="panel-body">
                <form id="formSearch" class="form-horizontal">
                	<div class="form-group" style="margin-top:15px">
                        <label class="control-label col-sm-1" for="txt_search_departmentname">日期:</label>
                        <div class="col-sm-1">
                            <select id="txt_search_departmentname" onchange="selectTime()" class="selectpicker show-tick form-control"  data-live-search="false">
	                         	<option value="0">全部数据</option>
	                         	<option value="1">最近一天</option>
	                         	<option value="7">最近一星期</option>
	                         	<option value="30">最近一个月</option>
                         	</select>
                         	<script type="text/javascript">
                         		function selectTime() {
                         			var dom=$('#txt_search_departmentname').selectpicker('val');
                         			var curDate = new Date(); 
                         			$("#endprdate").val(FormatDate(curDate));
                         			var endtime = null;
                         			if (dom > 7) {
                         				endtime = curDate.setMonth(curDate.getMonth()-1);
									}else{
										if (dom == 0) {
											$("#endprdate").val(null);
											$("#starprdate").val(null);
										} else {
											endtime = new Date(curDate.getTime() - dom*24*60*60*1000); //前一天
										}
									}
                         			if (endtime == null) {
	                         			$("#starprdate").val(endtime);
									} else {
                         				$("#starprdate").val(FormatDate(endtime));
									}
								}
                         		function add0(m){return m<10?'0'+m:m }
                         		function FormatDate (strTime) {
                         		    var date = new Date(strTime);
                         		    return date.getFullYear()+"-"+add0((date.getMonth()+1))+"-"+add0(date.getDate());
                         		}
                         		$(document).ready(function(){
                       			  $(".timeduan").change(function(){
                       				var end = $.trim($('#endprdate').val()) ;
                       				var star =$.trim($('#starprdate').val()); 
                       				if (end != null && end != "" && star != null && star != "") {
	                       				if (end < star) {
	                       					toastr.warning('开始时间小于结束时间,按此条件将查不到数据!');
										}
                       				}
                       			  });
                       			});
                         	</script>
                        </div>
                        <label class="control-label col-sm-1" for="txt_search_statu" style="width: 30px;">从</label> 
                        <div class="col-sm-2" style="width: 236px;/* padding-left: 0px;padding-right: 0px; */">
                        	<input class="form_datetime form-control timeduan" type="text" id="starprdate" name="starprdate" readonly >
                        </div>
                        <label class="control-label col-sm-1" for="txt_search_statu" style="width: 30px;padding-left: 0px;">至</label> 
                        <div class="col-sm-2" style="width: 236px;/* padding-left: 0px;padding-right: 0px; */">
                        	<input class="form_datetime form-control timeduan"  type="text" id="endprdate" name="endprdate" readonly >
                        </div>
						<label class="control-label col-sm-1" for="txt_search_departmentname">供应商:</label>
                        <div class="col-sm-1">
	                         <select id="suppliername" name="suppliername" class="show-tick form-control selectpicker"  data-live-search="false">
		                         <option value="">所有客户</option>
	                         </select>
                         	 <script type="text/javascript">
				                $(function(){
				                    $.ajax({
						                type: "post",
						                url: "${pageContext.request.contextPath }/supplier/all.do",
						                dataType: 'JSON',
						                success: function (data) {
						                      //设置下拉列表中的值的属性
						                      for ( var i = 0; i < data.length; i++) {
							                        //增加下拉列表。
							                        $("#suppliername").append("<option>"+data[i].suppliername+"</option>");
											 }
						                     //必须执行，否则数据添加失败
						                     $('#suppliername').selectpicker('refresh'); 
						                     //$('#suppliername').selectpicker('render'); 
						                }
						            });
				                });
				            	//思路如上。你可以将点击时将文本框中值传到后台，后台返回数据后，在将数据存入下拉列表对象中。
				        	</script>
                        </div>
                         <div>
		                	<button type="button" style="margin-left:50px" id="btn_query" class="btn btn-primary" onclick="seach()">查询</button>
		                	<button type="button" style="margin-left:50px" id="btn_query" class="btn btn-primary" onclick="clearSearch()">清除</button>
		                 </div>
                	</div>	
                </form>
            </div>
        </div>          

        <div id="toolbar" class="btn-group">
            <button id="btn_add" type="button" class="btn btn-default" onclick="doAdd()">
                <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
            </button>
            <button id="btn_edit" type="button" class="btn btn-default" onclick="doView()">
           		 <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
            </button>
            <button id="btn_delete" type="button" class="btn btn-default" onclick="doDelete()">
                <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
            </button>
            <!-- <button id="btn_delete" type="button" class="btn btn-default" onclick="doPrint()">
                <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>打印条形码
            </button>
            <button id="btn_delete" type="button" class="btn btn-default" onclick="dork()">
                <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>入库处理
            </button> -->
        </div>
        <table id="tb_departments"></table>
        <input type="hidden" id="id" value="0">
        <table id="tb_departmentsDetailed"></table>
    </div>
    
    
    
    
	
	<!-- 时间控件 -->
	<script type="text/javascript">
		$(function () {
			$(".form_datetime").datetimepicker({
			 format: "yyyy-mm-dd",
			 autoclose: true,
			 todayBtn: true,
			 clearBtn:true,// 自定义属性,true 显示 清空按钮 false 隐藏 默认:true
			 todayHighlight: true,
			 showMeridian: true,
			 pickerPosition: "bottom-left",
			 language: 'zh-CN',//中文，需要引用zh-CN.js包
			 startView: 2,//月视图
			 minView: 2//日期时间选择器所能够提供的最精确的时间选择视图
			 });
		 });
	</script>
	<script type="text/javascript">
	$(function() {
		var layerTips = parent.layer === undefined ? layui.layer : parent.layer
		$("#fm").bootstrapValidator({
			feedbackIcons : {
				valid : 'glyphicon glyphicon-ok',
				invalid : 'glyphicon glyphicon-remove',
				validating : 'glyphicon glyphicon-refresh'
			},
			fields : {
				staffnumbering : {
					validators : {
						notEmpty : {
							message : '员工编号不能为空'
						},
					}
				},
				staffname : {
					validators : {
						notEmpty : {
							message : '员工姓名不能为空'
						},
					}
				},
				sex : {
					validators : {
						notEmpty : {
							message : '员工姓名不能为空'
						},
					}
				},
				fax : {
					validators : {
						notEmpty : {
							message : '传真不能为空'
						},
						/* stringLength: {
	                         min: 11,
	                         max: 12,
	                         message: '请输入传真号码'
	                     }, */
	                     regexp: {
	                         regexp:  /0\d{2,3}-\d{7,8}/,
	                         message: '请输入正确的传真号码'
	                     }
					}
				},
				phone : {
					validators : {
						notEmpty : {
							message : '联系电话不能为空'
						},
						/* stringLength: {
	                         min: 11,
	                         max: 11,
	                         message: '请输入联系电话号码'
	                     }, */
	                     regexp: {
	                         regexp:    /^(0?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]{8})|(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})(-| )?)?([0-9]{7,8})((-| |转)*([0-9]{1,4}))?$/,
	                         message: '请输入正确的联系电话号码'
	                     }
					}
				},
				factoryid : {
					validators : {
						notEmpty : {
							message : '工厂不能为空'
						},
					}
				},
				departmentid : {
					validators : {
						notEmpty : {
							message : '部门不能为空'
						},
					}
				},
				duty : {
					validators : {
						notEmpty : {
							message : '职责不能为空'
						},
					}
				},
				/* rsdate : {
					validators : {
						notEmpty : {
							message : '入社日期不能为空'
						},
						date : {
							format : "yyyy-MM-dd"
						}
					}
				}, */
				
			},
		});
	});
	</script>
</body>
</html>